package com.zygh.lz.service;

import com.zygh.lz.entity.Xarea;
import com.zygh.lz.entity.XareaMode;
import com.zygh.lz.entity.remould.Xareas;
import com.zygh.lz.entity.vo.XareaVO;
import com.zygh.lz.vo.ResultBean;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface XareaService {
    //根据大队，中队，岗位，中队领导
    ResultBean selectXareabycondition(String battalion, String detachment, String station, String leader, String grid, String type);

    //新增
    ResultBean insertXarea(Xarea xarea);

    //修改
    ResultBean updateXarea(Xarea xarea);

    //删除
    ResultBean deleteXarea(Integer id, String updateBy);

    //根据名字模糊查询
    ResultBean selectXareaByName(String Name, String battalion, String detachment);

    //查询所有区域
    ResultBean selectXareaAll();

    //根据id查询区域信息
    ResultBean selectonlineNumber(Integer id);


    ResultBean selectpolice();

    //夜间快速岗
    ResultBean selectks();

    //查询其他
    ResultBean selectqt(String conment, String battalion);


    /**
     * 日间警力部署
     */
    //日间固定岗部署人员按大队细分
    ResultBean selectfixationRJ(String station, String battalion);

    //日间重点单位岗
    ResultBean selectemphasisRJ(String battalion);

    //日间铁骑
    ResultBean selectcavalryRJ(String battalion);

    //网格警组
    ResultBean selectgriddingRJ(String battalion);

    //日间高速
    ResultBean selectexpresswayRJ(String station, String battalion);

    //在线人详情
    ResultBean selectInformant();

    //夜间夜巡警力部署
    ResultBean selectNightTour(String battalion);

    //夜间快速
    ResultBean selectcelerity(String station, String battalion);

    //夜间高速警力部署
    ResultBean selectceleritygs(String station, String battalion);

    //夜间其他
    ResultBean selectqita(String battalion);

    //九主六块十六示范区
    ResultBean selectDemonstrationPlot(String station, String battalion);

    //根据区域名字模糊匹配部署警力
    ResultBean selctStrength(String name, String battalion);

    //九主六块多有人
    ResultBean selectAllByDemonstration(String station, String battalion);

    /**
     * 对接市局接口
     * 根据不同条件查询标注信息
     */
    ResultBean selectXareaByInfo(Xarea xarea);

    ResultBean selectPoliceNumber(Xarea xarea);

    //根据区域查询相应警力
    ResultBean selctStrengthById(Xarea xarea);

    //任务组信息
    ResultBean selectTaskSetInfo();

    //任务信息
    ResultBean selectTaskInfo();

    //根据id,大队，岗位查询区域详情
    ResultBean findDetailsByInfo(Integer id, Integer sectionDid, String grid);

    //根据区域id查询人员详情
    ResultBean findStaffInfo(Integer id);

    //根据条件统计各时段岗位在线率
    List<HashMap> countXarea(String rwmc, String battalion, String startTime, String endTime);

    //空岗统计 当天没有签到的岗位统计
    ResultBean konggangRemind(String battalion);

    //日间机动岗统计
    ResultBean findMobile(String battalion);

    //缺勤显示
    ResultBean findAbsent(String station, String battalion);

    //根据岗位类型和中队id查询岗位
    List<Xarea> findXareaByInfo(@Param("station") String station,
                                @Param("id") Integer id);

    ResultBean selectByPrimaryKey(Integer id);

    /**
     * ================================PC端首页右侧岗位详情栏信息改造========================================
     */


    /**
     * 右边警力详情，大队详情
     *
     * @param battalion 大队
     * @param station   岗位
     * @return ResultBean
     */
    ResultBean findBattalionInfo(String battalion, String station);

    /**
     * 右边警力详情，中队详情
     *
     * @param sectionDid 大队
     * @param station    岗位
     * @return ResultBean
     */
    ResultBean findDetachmentInfo(String sectionDid, String station);


    /**
     * 右边警力详情，人员详情
     *
     * @param xareas 入参
     * @return ResultBean
     */
    ResultBean findStaffDetail(Xareas xareas);


    /**
     * PC日常勤务根据大队和岗位查询详情
     *
     * @param sectionId 大队
     * @param station   岗位
     * @return ResultBean
     */
    List<Map> findXareaByStation(String sectionId, String station, String name);

    List<Map> findStation(Integer sectionId);

    List<Map> findXareaCoordinate(String battalion, String station);

    List<Map> findStaffByXareaId(Integer id);

    Xarea findXareaById(Integer id);


    Map personnelStatistics(Integer id);

    //查询勤务模式列表
    List<XareaMode> findXareaModeAll();


}
